home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 2002 November / SGI Freeware 2002 November - Disc 3.iso / dist / fw_texinfo.idb / usr / freeware / info / texinfo-6.z / texinfo-6
Text File  |  2001-07-06  |  51KB  |  1,472 lines

  1. This is texinfo, produced by makeinfo version 4.0 from texinfo.txi.
  2.  
  3. INFO-DIR-SECTION Texinfo documentation system
  4. START-INFO-DIR-ENTRY
  5. * Texinfo: (texinfo).           The GNU documentation format.
  6. * install-info: (texinfo)Invoking install-info. Update info/dir entries.
  7. * texi2dvi: (texinfo)Format with texi2dvi.      Print Texinfo documents.
  8. * texindex: (texinfo)Format with tex/texindex.  Sort Texinfo index files.
  9. * makeinfo: (texinfo)makeinfo Preferred.        Translate Texinfo source.
  10. END-INFO-DIR-ENTRY
  11.  
  12.   This file documents Texinfo, a documentation system that can produce
  13. both online information and a printed manual from a single source file.
  14.  
  15.   Copyright (C) 1988, 90, 91, 92, 93, 95, 96, 97, 98, 99 Free Software
  16. Foundation, Inc.
  17.  
  18.   This edition is for Texinfo version 4.0, 28 September 1999.
  19.  
  20.   Permission is granted to make and distribute verbatim copies of this
  21. manual provided the copyright notice and this permission notice are
  22. preserved on all copies.
  23.  
  24.   Permission is granted to copy and distribute modified versions of this
  25. manual under the conditions for verbatim copying, provided that the
  26. entire resulting derived work is distributed under the terms of a
  27. permission notice identical to this one.
  28.  
  29.   Permission is granted to copy and distribute translations of this
  30. manual into another language, under the above conditions for modified
  31. versions, except that this permission notice may be stated in a
  32. translation approved by the Free Software Foundation.
  33.  
  34. 
  35. File: texinfo,  Node: cartouche,  Prev: flushleft & flushright,  Up: Quotations and Examples
  36.  
  37. Drawing Cartouches Around Examples
  38. ==================================
  39.  
  40.   In a printed manual, the `@cartouche' command draws a box with
  41. rounded corners around its contents.  You can use this command to
  42. further highlight an example or quotation.  For instance, you could
  43. write a manual in which one type of example is surrounded by a cartouche
  44. for emphasis.
  45.  
  46.   `@cartouche' affects only the printed manual; it has no effect in
  47. other output files.
  48.  
  49.   For example,
  50.  
  51.      @example
  52.      @cartouche
  53.      % pwd
  54.      /usr/local/share/emacs
  55.      @end cartouche
  56.      @end example
  57.  
  58. surrounds the two-line example with a box with rounded corners, in the
  59. printed manual.
  60.  
  61. 
  62. File: texinfo,  Node: Lists and Tables,  Next: Indices,  Prev: Quotations and Examples,  Up: Top
  63.  
  64. Lists and Tables
  65. ****************
  66.  
  67.   Texinfo has several ways of making lists and tables.  Lists can be
  68. bulleted or numbered; two-column tables can highlight the items in the
  69. first column; multi-column tables are also supported.
  70.  
  71. * Menu:
  72.  
  73. * Introducing Lists::           Texinfo formats lists for you.
  74. * itemize::                     How to construct a simple list.
  75. * enumerate::                   How to construct a numbered list.
  76. * Two-column Tables::           How to construct a two-column table.
  77. * Multi-column Tables::         How to construct generalized tables.
  78.  
  79. 
  80. File: texinfo,  Node: Introducing Lists,  Next: itemize,  Prev: Lists and Tables,  Up: Lists and Tables
  81.  
  82. Introducing Lists
  83. =================
  84.  
  85.   Texinfo automatically indents the text in lists or tables, and numbers
  86. an enumerated list.  This last feature is useful if you modify the
  87. list, since you do not need to renumber it yourself.
  88.  
  89.   Numbered lists and tables begin with the appropriate @-command at the
  90. beginning of a line, and end with the corresponding `@end' command on a
  91. line by itself.  The table and itemized-list commands also require that
  92. you write formatting information on the same line as the beginning
  93. @-command.
  94.  
  95.   Begin an enumerated list, for example, with an `@enumerate' command
  96. and end the list with an `@end enumerate' command.  Begin an itemized
  97. list with an `@itemize' command, followed on the same line by a
  98. formatting command such as `@bullet', and end the list with an `@end
  99. itemize' command.
  100.  
  101.   Precede each element of a list with an `@item' or `@itemx' command.
  102.  
  103.  
  104. Here is an itemized list of the different kinds of table and lists:
  105.  
  106.    * Itemized lists with and without bullets.
  107.  
  108.    * Enumerated lists, using numbers or letters.
  109.  
  110.    * Two-column tables with highlighting.
  111.  
  112.  
  113. Here is an enumerated list with the same items:
  114.  
  115.   1. Itemized lists with and without bullets.
  116.  
  117.   2. Enumerated lists, using numbers or letters.
  118.  
  119.   3. Two-column tables with highlighting.
  120.  
  121.  
  122. And here is a two-column table with the same items and their @-commands:
  123.  
  124. `@itemize'
  125.      Itemized lists with and without bullets.
  126.  
  127. `@enumerate'
  128.      Enumerated lists, using numbers or letters.
  129.  
  130. `@table'
  131. `@ftable'
  132. `@vtable'
  133.      Two-column tables, optionally with indexing.
  134.  
  135. 
  136. File: texinfo,  Node: itemize,  Next: enumerate,  Prev: Introducing Lists,  Up: Lists and Tables
  137.  
  138. `@itemize': Making an Itemized List
  139. ===================================
  140.  
  141.   The `@itemize' command produces sequences of indented paragraphs,
  142. with a bullet or other mark inside the left margin at the beginning of
  143. each paragraph for which such a mark is desired.
  144.  
  145.   Begin an itemized list by writing `@itemize' at the beginning of a
  146. line.  Follow the command, on the same line, with a character or a
  147. Texinfo command that generates a mark.  Usually, you will write
  148. `@bullet' after `@itemize', but you can use `@minus', or any command or
  149. character that results in a single character in the Info file.  If you
  150. don't want any mark at all, use `@w'.  (When you write the mark command
  151. such as `@bullet' after an `@itemize' command, you may omit the `{}'.)
  152. If you don't specify a mark command, the default is `@bullet'.
  153.  
  154.   Write the text of the indented paragraphs themselves after the
  155. `@itemize', up to another line that says `@end itemize'.
  156.  
  157.   Before each paragraph for which a mark in the margin is desired,
  158. write a line that says just `@item'.  It is ok to have text following
  159. the `@item'.
  160.  
  161.   Usually, you should put a blank line before an `@item'.  This puts a
  162. blank line in the Info file. (TeX inserts the proper interline
  163. whitespace in either case.)  Except when the entries are very brief,
  164. these blank lines make the list look better.
  165.  
  166.   Here is an example of the use of `@itemize', followed by the output
  167. it produces.  `@bullet' produces an `*' in Info and a round dot in TeX.
  168.  
  169.      @itemize @bullet
  170.      @item
  171.      Some text for foo.
  172.      
  173.      @item
  174.      Some text
  175.      for bar.
  176.      @end itemize
  177.  
  178. This produces:
  179.  
  180.         * Some text for foo.
  181.  
  182.         * Some text for bar.
  183.  
  184.   Itemized lists may be embedded within other itemized lists.  Here is a
  185. list marked with dashes embedded in a list marked with bullets:
  186.  
  187.      @itemize @bullet
  188.      @item
  189.      First item.
  190.      
  191.      @itemize @minus
  192.      @item
  193.      Inner item.
  194.      
  195.      @item
  196.      Second inner item.
  197.      @end itemize
  198.      
  199.      @item
  200.      Second outer item.
  201.      @end itemize
  202.  
  203. This produces:
  204.  
  205.         * First item.
  206.  
  207.              - Inner item.
  208.  
  209.              - Second inner item.
  210.  
  211.         * Second outer item.
  212.  
  213. 
  214. File: texinfo,  Node: enumerate,  Next: Two-column Tables,  Prev: itemize,  Up: Lists and Tables
  215.  
  216. `@enumerate': Making a Numbered or Lettered List
  217. ================================================
  218.  
  219.   `@enumerate' is like `@itemize' (*note `@itemize': itemize.), except
  220. that the labels on the items are successive integers or letters instead
  221. of bullets.
  222.  
  223.   Write the `@enumerate' command at the beginning of a line.  The
  224. command does not require an argument, but accepts either a number or a
  225. letter as an option.  Without an argument, `@enumerate' starts the list
  226. with the number `1'.  With a numeric argument, such as `3', the command
  227. starts the list with that number.  With an upper or lower case letter,
  228. such as `a' or `A', the command starts the list with that letter.
  229.  
  230.   Write the text of the enumerated list in the same way you write an
  231. itemized list: put `@item' on a line of its own before the start of
  232. each paragraph that you want enumerated.  Do not write any other text
  233. on the line beginning with `@item'.
  234.  
  235.   You should put a blank line between entries in the list.  This
  236. generally makes it easier to read the Info file.
  237.  
  238.   Here is an example of `@enumerate' without an argument:
  239.  
  240.      @enumerate
  241.      @item
  242.      Underlying causes.
  243.      
  244.      @item
  245.      Proximate causes.
  246.      @end enumerate
  247.  
  248. This produces:
  249.  
  250.   1. Underlying causes.
  251.  
  252.   2. Proximate causes.
  253.  
  254.  
  255.  
  256.   Here is an example with an argument of `3':
  257.  
  258.  
  259.      @enumerate 3
  260.      @item
  261.      Predisposing causes.
  262.      
  263.      @item
  264.      Precipitating causes.
  265.      
  266.      @item
  267.      Perpetuating causes.
  268.      @end enumerate
  269.  
  270. This produces:
  271.  
  272.   3. Predisposing causes.
  273.  
  274.   4. Precipitating causes.
  275.  
  276.   5. Perpetuating causes.
  277.  
  278.  
  279.  
  280.   Here is a brief summary of the alternatives.  The summary is
  281. constructed using `@enumerate' with an argument of `a'.
  282.  
  283.  
  284.   a. `@enumerate'
  285.  
  286.      Without an argument, produce a numbered list, starting with the
  287.      number 1.
  288.  
  289.   b. `@enumerate POSITIVE-INTEGER'
  290.  
  291.      With a (positive) numeric argument, start a numbered list with that
  292.      number.  You can use this to continue a list that you interrupted
  293.      with other text.
  294.  
  295.   c. `@enumerate UPPER-CASE-LETTER'
  296.  
  297.      With an upper case letter as argument, start a list in which each
  298.      item is marked by a letter, beginning with that upper case letter.
  299.  
  300.   d. `@enumerate LOWER-CASE-LETTER'
  301.  
  302.      With a lower case letter as argument, start a list in which each
  303.      item is marked by a letter, beginning with that lower case letter.
  304.  
  305.   You can also nest enumerated lists, as in an outline.
  306.  
  307. 
  308. File: texinfo,  Node: Two-column Tables,  Next: Multi-column Tables,  Prev: enumerate,  Up: Lists and Tables
  309.  
  310. Making a Two-column Table
  311. =========================
  312.  
  313.   `@table' is similar to `@itemize' (*note `@itemize': itemize.), but
  314. allows you to specify a name or heading line for each item.  The
  315. `@table' command is used to produce two-column tables, and is
  316. especially useful for glossaries, explanatory exhibits, and
  317. command-line option summaries.
  318.  
  319. * Menu:
  320.  
  321. * table::                       How to construct a two-column table.
  322. * ftable vtable::               Automatic indexing for two-column tables.
  323. * itemx::                       How to put more entries in the first column.
  324.  
  325. 
  326. File: texinfo,  Node: table,  Next: ftable vtable,  Prev: Two-column Tables,  Up: Two-column Tables
  327.  
  328. Using the `@table' Command
  329. --------------------------
  330.  
  331.   Use the `@table' command to produce two-column tables.
  332.  
  333.   Write the `@table' command at the beginning of a line and follow it
  334. on the same line with an argument that is a Texinfo "indicating"
  335. command such as `@code', `@samp', `@var', or `@kbd' (*note
  336. Indicating::).  Although these commands are usually followed by
  337. arguments in braces, in this case you use the command name without an
  338. argument because `@item' will supply the argument.  This command will
  339. be applied to the text that goes into the first column of each item and
  340. determines how it will be highlighted.  For example, `@code' will cause
  341. the text in the first column to be highlighted with an `@code' command.
  342. (We recommend `@code' for `@table''s of command-line options.)
  343.  
  344.   You may also choose to use the `@asis' command as an argument to
  345. `@table'.  `@asis' is a command that does nothing; if you use this
  346. command after `@table', TeX and the Info formatting commands output the
  347. first column entries without added highlighting ("as is").
  348.  
  349.   (The `@table' command may work with other commands besides those
  350. listed here.  However, you can only use commands that normally take
  351. arguments in braces.)
  352.  
  353.   Begin each table entry with an `@item' command at the beginning of a
  354. line.  Write the first column text on the same line as the `@item'
  355. command.  Write the second column text on the line following the
  356. `@item' line and on subsequent lines.  (You do not need to type
  357. anything for an empty second column entry.)  You may write as many
  358. lines of supporting text as you wish, even several paragraphs.  But
  359. only text on the same line as the `@item' will be placed in the first
  360. column, including any footnote.
  361.  
  362.   Normally, you should put a blank line before an `@item' line.  This
  363. puts a blank like in the Info file.  Except when the entries are very
  364. brief, a blank line looks better.
  365.  
  366.   The following table, for example, highlights the text in the first
  367. column with an `@samp' command:
  368.  
  369.      @table @samp
  370.      @item foo
  371.      This is the text for
  372.      @samp{foo}.
  373.      
  374.      @item bar
  375.      Text for @samp{bar}.
  376.      @end table
  377.  
  378. This produces:
  379.  
  380. `foo'
  381.      This is the text for `foo'.
  382.  
  383. `bar'
  384.      Text for `bar'.
  385.  
  386.   If you want to list two or more named items with a single block of
  387. text, use the `@itemx' command.  (*Note `@itemx': itemx.)
  388.  
  389. 
  390. File: texinfo,  Node: ftable vtable,  Next: itemx,  Prev: table,  Up: Two-column Tables
  391.  
  392. `@ftable' and `@vtable'
  393. -----------------------
  394.  
  395.   The `@ftable' and `@vtable' commands are the same as the `@table'
  396. command except that `@ftable' automatically enters each of the items in
  397. the first column of the table into the index of functions and `@vtable'
  398. automatically enters each of the items in the first column of the table
  399. into the index of variables.  This simplifies the task of creating
  400. indices.  Only the items on the same line as the `@item' commands are
  401. indexed, and they are indexed in exactly the form that they appear on
  402. that line.  *Note Indices::, for more information about indices.
  403.  
  404.   Begin a two-column table using `@ftable' or `@vtable' by writing the
  405. @-command at the beginning of a line, followed on the same line by an
  406. argument that is a Texinfo command such as `@code', exactly as you
  407. would for an `@table' command; and end the table with an `@end ftable'
  408. or `@end vtable' command on a line by itself.
  409.  
  410.   See the example for `@table' in the previous section.
  411.  
  412. 
  413. File: texinfo,  Node: itemx,  Prev: ftable vtable,  Up: Two-column Tables
  414.  
  415. `@itemx'
  416. --------
  417.  
  418.   Use the `@itemx' command inside a table when you have two or more
  419. first column entries for the same item, each of which should appear on a
  420. line of its own.  Use `@itemx' for all but the first entry; `@itemx'
  421. should always follow an `@item' command.  The `@itemx' command works
  422. exactly like `@item' except that it does not generate extra vertical
  423. space above the first column text.
  424.  
  425.   For example,
  426.  
  427.      @table @code
  428.      @item upcase
  429.      @itemx downcase
  430.      These two functions accept a character or a string as
  431.      argument, and return the corresponding upper case (lower
  432.      case) character or string.
  433.      @end table
  434.  
  435. This produces:
  436.  
  437. `upcase'
  438. `downcase'
  439.      These two functions accept a character or a string as argument,
  440.      and return the corresponding upper case (lower case) character or
  441.      string.
  442.  
  443. (Note also that this example illustrates multi-line supporting text in
  444. a two-column table.)
  445.  
  446. 
  447. File: texinfo,  Node: Multi-column Tables,  Prev: Two-column Tables,  Up: Lists and Tables
  448.  
  449. Multi-column Tables
  450. ===================
  451.  
  452.   `@multitable' allows you to construct tables with any number of
  453. columns, with each column having any width you like.
  454.  
  455.   You define the column widths on the `@multitable' line itself, and
  456. write each row of the actual table following an `@item' command, with
  457. columns separated by an `@tab' command.  Finally, `@end multitable'
  458. completes the table.  Details in the sections below.
  459.  
  460. * Menu:
  461.  
  462. * Multitable Column Widths::    Defining multitable column widths.
  463. * Multitable Rows::             Defining multitable rows, with examples.
  464.  
  465. 
  466. File: texinfo,  Node: Multitable Column Widths,  Next: Multitable Rows,  Up: Multi-column Tables
  467.  
  468. Multitable Column Widths
  469. ------------------------
  470.  
  471.   You can define the column widths for a multitable in two ways: as
  472. fractions of the line length; or with a prototype row.  Mixing the two
  473. methods is not supported.  In either case, the widths are defined
  474. entirely on the same line as the `@multitable' command.
  475.  
  476.   1. To specify column widths as fractions of the line length, write
  477.      `@columnfractions' and the decimal numbers (presumably less than
  478.      1) after the `@multitable' command, as in:
  479.  
  480.           @multitable @columnfractions .33 .33 .33
  481.  
  482.      The fractions need not add up exactly to 1.0, as these do not.
  483.      This allows you to produce tables that do not need the full line
  484.      length.  You can use a leading zero if you wish.
  485.  
  486.   2. To specify a prototype row, write the longest entry for each column
  487.      enclosed in braces after the `@multitable' command.  For example:
  488.  
  489.           @multitable {some text for column one} {for column two}
  490.  
  491.      The first column will then have the width of the typeset `some
  492.      text for column one', and the second column the width of `for
  493.      column two'.
  494.  
  495.      The prototype entries need not appear in the table itself.
  496.  
  497.      Although we used simple text in this example, the prototype
  498.      entries can contain Texinfo commands; markup commands such as
  499.      `@code' are particularly likely to be useful.
  500.  
  501.  
  502. 
  503. File: texinfo,  Node: Multitable Rows,  Prev: Multitable Column Widths,  Up: Multi-column Tables
  504.  
  505. Multitable Rows
  506. ---------------
  507.  
  508.   After the `@multitable' command defining the column widths (see the
  509. previous section), you begin each row in the body of a multitable with
  510. `@item', and separate the column entries with `@tab'.  Line breaks are
  511. not special within the table body, and you may break input lines in
  512. your source file as necessary.
  513.  
  514.   Here is a complete example of a multi-column table (the text is from
  515. `The GNU Emacs Manual', *note Splitting Windows: (emacs)Split Window.):
  516.  
  517.      @multitable @columnfractions .15 .45 .4
  518.      @item Key @tab Command @tab Description
  519.      @item C-x 2
  520.      @tab @code{split-window-vertically}
  521.      @tab Split the selected window into two windows,
  522.      with one above the other.
  523.      @item C-x 3
  524.      @tab @code{split-window-horizontally}
  525.      @tab Split the selected window into two windows
  526.      positioned side by side.
  527.      @item C-Mouse-2
  528.      @tab
  529.      @tab In the mode line or scroll bar of a window,
  530.      split that window.
  531.      @end multitable
  532.  
  533. produces:
  534.  
  535. Key         Command                          Description
  536. C-x 2       `split-window-vertically'        Split the selected window
  537.                                              into two windows, with one
  538.                                              above the other.
  539. C-x 3       `split-window-horizontally'      Split the selected window
  540.                                              into two windows positioned
  541.                                              side by side.
  542. C-Mouse-2                                    In the mode line or scroll
  543.                                              bar of a window, split that
  544.                                              window.
  545.  
  546. 
  547. File: texinfo,  Node: Indices,  Next: Insertions,  Prev: Lists and Tables,  Up: Top
  548.  
  549. Indices
  550. *******
  551.  
  552.   Using Texinfo, you can generate indices without having to sort and
  553. collate entries manually.  In an index, the entries are listed in
  554. alphabetical order, together with information on how to find the
  555. discussion of each entry.  In a printed manual, this information
  556. consists of page numbers.  In an Info file, this information is a menu
  557. entry leading to the first node referenced.
  558.  
  559.   Texinfo provides several predefined kinds of index: an index for
  560. functions, an index for variables, an index for concepts, and so on.
  561. You can combine indices or use them for other than their canonical
  562. purpose.  If you wish, you can define your own indices.
  563.  
  564. * Menu:
  565.  
  566. * Index Entries::               Choose different words for index entries.
  567. * Predefined Indices::          Use different indices for different kinds
  568.                                   of entry.
  569. * Indexing Commands::           How to make an index entry.
  570. * Combining Indices::           How to combine indices.
  571. * New Indices::                 How to define your own indices.
  572.  
  573. 
  574. File: texinfo,  Node: Index Entries,  Next: Predefined Indices,  Prev: Indices,  Up: Indices
  575.  
  576. Making Index Entries
  577. ====================
  578.  
  579.   When you are making index entries, it is good practice to think of the
  580. different ways people may look for something.  Different people _do
  581. not_ think of the same words when they look something up.  A helpful
  582. index will have items indexed under all the different words that people
  583. may use.  For example, one reader may think it obvious that the
  584. two-letter names for indices should be listed under "Indices,
  585. two-letter names", since the word "Index" is the general concept.  But
  586. another reader may remember the specific concept of two-letter names
  587. and search for the entry listed as "Two letter names for indices".  A
  588. good index will have both entries and will help both readers.
  589.  
  590.   Like typesetting, the construction of an index is a highly skilled,
  591. professional art, the subtleties of which are not appreciated until you
  592. need to do it yourself.
  593.  
  594.   *Note Printing Indices & Menus::, for information about printing an
  595. index at the end of a book or creating an index menu in an Info file.
  596.  
  597. 
  598. File: texinfo,  Node: Predefined Indices,  Next: Indexing Commands,  Prev: Index Entries,  Up: Indices
  599.  
  600. Predefined Indices
  601. ==================
  602.  
  603.   Texinfo provides six predefined indices:
  604.  
  605.    * A "concept index" listing concepts that are discussed.
  606.  
  607.    * A "function index" listing functions (such as entry points of
  608.      libraries).
  609.  
  610.    * A "variables index" listing variables (such as global variables of
  611.      libraries).
  612.  
  613.    * A "keystroke index" listing keyboard commands.
  614.  
  615.    * A "program index" listing names of programs.
  616.  
  617.    * A "data type index" listing data types (such as structures defined
  618.      in header files).
  619.  
  620. Not every manual needs all of these, and most manuals use two or three
  621. of them.  This manual has two indices: a concept index and an @-command
  622. index (that is actually the function index but is called a command
  623. index in the chapter heading).  Two or more indices can be combined
  624. into one using the `@synindex' or `@syncodeindex' commands.  *Note
  625. Combining Indices::.
  626.  
  627. 
  628. File: texinfo,  Node: Indexing Commands,  Next: Combining Indices,  Prev: Predefined Indices,  Up: Indices
  629.  
  630. Defining the Entries of an Index
  631. ================================
  632.  
  633.   The data to make an index come from many individual indexing commands
  634. scattered throughout the Texinfo source file.  Each command says to add
  635. one entry to a particular index; after formatting, the index will give
  636. the current page number or node name as the reference.
  637.  
  638.   An index entry consists of an indexing command at the beginning of a
  639. line followed, on the rest of the line, by the entry.
  640.  
  641.   For example, this section begins with the following five entries for
  642. the concept index:
  643.  
  644.      @cindex Defining indexing entries
  645.      @cindex Index entries
  646.      @cindex Entries for an index
  647.      @cindex Specifying index entries
  648.      @cindex Creating index entries
  649.  
  650.   Each predefined index has its own indexing command--`@cindex' for the
  651. concept index, `@findex' for the function index, and so on.
  652.  
  653.   Concept index entries consist of text.  The best way to write an index
  654. is to choose entries that are terse yet clear.  If you can do this, the
  655. index often looks better if the entries are not capitalized, but
  656. written just as they would appear in the middle of a sentence.
  657. (Capitalize proper names and acronyms that always call for upper case
  658. letters.)  This is the case convention we use in most GNU manuals'
  659. indices.
  660.  
  661.   If you don't see how to make an entry terse yet clear, make it longer
  662. and clear--not terse and confusing.  If many of the entries are several
  663. words long, the index may look better if you use a different convention:
  664. to capitalize the first word of each entry.  But do not capitalize a
  665. case-sensitive name such as a C or Lisp function name or a shell
  666. command; that would be a spelling error.
  667.  
  668.   Whichever case convention you use, please use it consistently!
  669.  
  670.   Entries in indices other than the concept index are symbol names in
  671. programming languages, or program names; these names are usually
  672. case-sensitive, so use upper and lower case as required for them.
  673.  
  674.   By default, entries for a concept index are printed in a small roman
  675. font and entries for the other indices are printed in a small `@code'
  676. font.  You may change the way part of an entry is printed with the
  677. usual Texinfo commands, such as `@file' for file names and `@emph' for
  678. emphasis (*note Marking Text::).
  679.  
  680.   The six indexing commands for predefined indices are:
  681.  
  682. `@cindex CONCEPT'
  683.      Make an entry in the concept index for CONCEPT.
  684.  
  685. `@findex FUNCTION'
  686.      Make an entry in the function index for FUNCTION.
  687.  
  688. `@vindex VARIABLE'
  689.      Make an entry in the variable index for VARIABLE.
  690.  
  691. `@kindex KEYSTROKE'
  692.      Make an entry in the key index for KEYSTROKE.
  693.  
  694. `@pindex PROGRAM'
  695.      Make an entry in the program index for PROGRAM.
  696.  
  697. `@tindex DATA TYPE'
  698.      Make an entry in the data type index for DATA TYPE.
  699.  
  700.      *Caution:* Do not use a colon in an index entry.  In Info, a colon
  701.      separates the menu entry name from the node name, so a colon in
  702.      the entry itself confuses Info.  *Note The Parts of a Menu: Menu
  703.      Parts, for more information about the structure of a menu entry.
  704.  
  705.   You are not actually required to use the predefined indices for their
  706. canonical purposes.  For example, suppose you wish to index some C
  707. preprocessor macros.  You could put them in the function index along
  708. with actual functions, just by writing `@findex' commands for them;
  709. then, when you print the "Function Index" as an unnumbered chapter, you
  710. could give it the title `Function and Macro Index' and all will be
  711. consistent for the reader.  Or you could put the macros in with the
  712. data types by writing `@tindex' commands for them, and give that index
  713. a suitable title so the reader will understand.  (*Note Printing
  714. Indices & Menus::.)
  715.  
  716. 
  717. File: texinfo,  Node: Combining Indices,  Next: New Indices,  Prev: Indexing Commands,  Up: Indices
  718.  
  719. Combining Indices
  720. =================
  721.  
  722.   Sometimes you will want to combine two disparate indices such as
  723. functions and concepts, perhaps because you have few enough of one of
  724. them that a separate index for them would look silly.
  725.  
  726.   You could put functions into the concept index by writing `@cindex'
  727. commands for them instead of `@findex' commands, and produce a
  728. consistent manual by printing the concept index with the title
  729. `Function and Concept Index' and not printing the `Function Index' at
  730. all; but this is not a robust procedure.  It works only if your
  731. document is never included as part of another document that is designed
  732. to have a separate function index; if your document were to be included
  733. with such a document, the functions from your document and those from
  734. the other would not end up together.  Also, to make your function names
  735. appear in the right font in the concept index, you would need to
  736. enclose every one of them between the braces of `@code'.
  737.  
  738. * Menu:
  739.  
  740. * syncodeindex::                How to merge two indices, using `@code'
  741.                                   font for the merged-from index.
  742. * synindex::                    How to merge two indices, using the
  743.                                   default font of the merged-to index.
  744.  
  745. 
  746. File: texinfo,  Node: syncodeindex,  Next: synindex,  Prev: Combining Indices,  Up: Combining Indices
  747.  
  748. `@syncodeindex'
  749. ---------------
  750.  
  751.   When you want to combine functions and concepts into one index, you
  752. should index the functions with `@findex' and index the concepts with
  753. `@cindex', and use the `@syncodeindex' command to redirect the function
  754. index entries into the concept index.
  755.  
  756.   The `@syncodeindex' command takes two arguments; they are the name of
  757. the index to redirect, and the name of the index to redirect it to.
  758. The template looks like this:
  759.  
  760.      @syncodeindex FROM TO
  761.  
  762.   For this purpose, the indices are given two-letter names:
  763.  
  764. `cp'
  765.      concept index
  766.  
  767. `fn'
  768.      function index
  769.  
  770. `vr'
  771.      variable index
  772.  
  773. `ky'
  774.      key index
  775.  
  776. `pg'
  777.      program index
  778.  
  779. `tp'
  780.      data type index
  781.  
  782.   Write an `@syncodeindex' command before or shortly after the
  783. end-of-header line at the beginning of a Texinfo file.  For example, to
  784. merge a function index with a concept index, write the following:
  785.  
  786.      @syncodeindex fn cp
  787.  
  788. This will cause all entries designated for the function index to merge
  789. in with the concept index instead.
  790.  
  791.   To merge both a variables index and a function index into a concept
  792. index, write the following:
  793.  
  794.      @syncodeindex vr cp
  795.      @syncodeindex fn cp
  796.  
  797.   The `@syncodeindex' command puts all the entries from the `from'
  798. index (the redirected index) into the `@code' font, overriding whatever
  799. default font is used by the index to which the entries are now
  800. directed.  This way, if you direct function names from a function index
  801. into a concept index, all the function names are printed in the `@code'
  802. font as you would expect.
  803.  
  804. 
  805. File: texinfo,  Node: synindex,  Prev: syncodeindex,  Up: Combining Indices
  806.  
  807. `@synindex'
  808. -----------
  809.  
  810.   The `@synindex' command is nearly the same as the `@syncodeindex'
  811. command, except that it does not put the `from' index  entries into the
  812. `@code' font; rather it puts them in the roman font.  Thus, you use
  813. `@synindex' when you merge a concept index into a function index.
  814.  
  815.   *Note Printing Indices & Menus::, for information about printing an
  816. index at the end of a book or creating an index menu in an Info file.
  817.  
  818. 
  819. File: texinfo,  Node: New Indices,  Prev: Combining Indices,  Up: Indices
  820.  
  821. Defining New Indices
  822. ====================
  823.  
  824.   In addition to the predefined indices, you may use the `@defindex'
  825. and `@defcodeindex' commands to define new indices.  These commands
  826. create new indexing @-commands with which you mark index entries.  The
  827. `@defindex 'command is used like this:
  828.  
  829.      @defindex NAME
  830.  
  831.   The name of an index should be a two letter word, such as `au'.  For
  832. example:
  833.  
  834.      @defindex au
  835.  
  836.   This defines a new index, called the `au' index.  At the same time,
  837. it creates a new indexing command, `@auindex', that you can use to make
  838. index entries.  Use the new indexing command just as you would use a
  839. predefined indexing command.
  840.  
  841.   For example, here is a section heading followed by a concept index
  842. entry and two `au' index entries.
  843.  
  844.      @section Cognitive Semantics
  845.      @cindex kinesthetic image schemas
  846.      @auindex Johnson, Mark
  847.      @auindex Lakoff, George
  848.  
  849. (Evidently, `au' serves here as an abbreviation for "author".)  Texinfo
  850. constructs the new indexing command by concatenating the name of the
  851. index with `index'; thus, defining an `au' index leads to the automatic
  852. creation of an `@auindex' command.
  853.  
  854.   Use the `@printindex' command to print the index, as you do with the
  855. predefined indices.  For example:
  856.  
  857.      @node Author Index, Subject Index, , Top
  858.      @unnumbered Author Index
  859.      
  860.      @printindex au
  861.  
  862.   The `@defcodeindex' is like the `@defindex' command, except that, in
  863. the printed output, it prints entries in an `@code' font instead of a
  864. roman font.  Thus, it parallels the `@findex' command rather than the
  865. `@cindex' command.
  866.  
  867.   You should define new indices within or right after the end-of-header
  868. line of a Texinfo file, before any `@synindex' or `@syncodeindex'
  869. commands (*note Header::).
  870.  
  871. 
  872. File: texinfo,  Node: Insertions,  Next: Breaks,  Prev: Indices,  Up: Top
  873.  
  874. Special Insertions
  875. ******************
  876.  
  877.   Texinfo provides several commands for inserting characters that have
  878. special meaning in Texinfo, such as braces, and for other graphic
  879. elements that do not correspond to simple characters you can type.
  880.  
  881. * Menu:
  882.  
  883. * Braces Atsigns::              How to insert braces, `@'.
  884. * Inserting Space::             How to insert the right amount of space
  885.                                   within a sentence.
  886. * Inserting Accents::           How to insert accents and special characters.
  887. * Dots Bullets::                How to insert dots and bullets.
  888. * TeX and copyright::           How to insert the TeX logo
  889.                                   and the copyright symbol.
  890. * pounds::                      How to insert the pounds currency symbol.
  891. * minus::                       How to insert a minus sign.
  892. * math::                        How to format a mathematical expression.
  893. * Glyphs::                      How to indicate results of evaluation,
  894.                                   expansion of macros, errors, etc.
  895. * Footnotes::                   How to include footnotes.
  896. * Images::                      How to include graphics.
  897.  
  898. 
  899. File: texinfo,  Node: Braces Atsigns,  Next: Inserting Space,  Prev: Insertions,  Up: Insertions
  900.  
  901. Inserting @ and Braces
  902. ======================
  903.  
  904.   `@' and curly braces are special characters in Texinfo.  To insert
  905. these characters so they appear in text, you must put an `@' in front
  906. of these characters to prevent Texinfo from misinterpreting them.
  907.  
  908.   Do not put braces after any of these commands; they are not necessary.
  909.  
  910. * Menu:
  911.  
  912. * Inserting An Atsign::         How to insert `@'.
  913. * Inserting Braces::            How to insert `{' and `}'.
  914.  
  915. 
  916. File: texinfo,  Node: Inserting An Atsign,  Next: Inserting Braces,  Prev: Braces Atsigns,  Up: Braces Atsigns
  917.  
  918. Inserting `@' with @@
  919. ---------------------
  920.  
  921.   `@@' stands for a single `@' in either printed or Info output.
  922.  
  923.   Do not put braces after an `@@' command.
  924.  
  925. 
  926. File: texinfo,  Node: Inserting Braces,  Prev: Inserting An Atsign,  Up: Braces Atsigns
  927.  
  928. Inserting `{' and `}'with @{ and @}
  929. -----------------------------------
  930.  
  931.   `@{' stands for a single `{' in either printed or Info output.
  932.  
  933.   `@}' stands for a single `}' in either printed or Info output.
  934.  
  935.   Do not put braces after either an `@{' or an `@}' command.
  936.  
  937. 
  938. File: texinfo,  Node: Inserting Space,  Next: Inserting Accents,  Prev: Braces Atsigns,  Up: Insertions
  939.  
  940. Inserting Space
  941. ===============
  942.  
  943.   The following sections describe commands that control spacing of
  944. various kinds within and after sentences.
  945.  
  946. * Menu:
  947.  
  948. * Not Ending a Sentence::       Sometimes a . doesn't end a sentence.
  949. * Ending a Sentence::           Sometimes it does.
  950. * Multiple Spaces::             Inserting multiple spaces.
  951. * dmn::                         How to format a dimension.
  952.  
  953. 
  954. File: texinfo,  Node: Not Ending a Sentence,  Next: Ending a Sentence,  Up: Inserting Space
  955.  
  956. Not Ending a Sentence
  957. ---------------------
  958.  
  959.   Depending on whether a period or exclamation point or question mark is
  960. inside or at the end of a sentence, less or more space is inserted after
  961. a period in a typeset manual.  Since it is not always possible to
  962. determine when a period ends a sentence and when it is used in an
  963. abbreviation, special commands are needed in some circumstances.
  964. Usually, Texinfo can guess how to handle periods, so you do not need to
  965. use the special commands; you just enter a period as you would if you
  966. were using a typewriter, which means you put two spaces after the
  967. period, question mark, or exclamation mark that ends a sentence.
  968.  
  969.   Use the `@:' command after a period, question mark, exclamation mark,
  970. or colon that should not be followed by extra space.  For example, use
  971. `@:' after periods that end abbreviations which are not at the ends of
  972. sentences.
  973.  
  974.   For example,
  975.  
  976.      The s.o.p.@: has three parts ...
  977.      The s.o.p. has three parts ...
  978.  
  979. produces
  980.  
  981.      The s.o.p. has three parts ...
  982.      The s.o.p. has three parts ...
  983.  
  984. (Incidentally, `s.o.p.' is an abbreviation for "Standard Operating
  985. Procedure".)
  986.  
  987.   `@:' has no effect on the Info output.  Do not put braces after `@:'.
  988.  
  989. 
  990. File: texinfo,  Node: Ending a Sentence,  Next: Multiple Spaces,  Prev: Not Ending a Sentence,  Up: Inserting Space
  991.  
  992. Ending a Sentence
  993. -----------------
  994.  
  995.   Use `@.' instead of a period, `@!' instead of an exclamation point,
  996. and `@?' instead of a question mark at the end of a sentence that ends
  997. with a single capital letter.  Otherwise, TeX will think the letter is
  998. an abbreviation and will not insert the correct end-of-sentence
  999. spacing.  Here is an example:
  1000.  
  1001.      Give it to M.I.B. and to M.E.W@.  Also, give it to R.J.C@.
  1002.      Give it to M.I.B. and to M.E.W.  Also, give it to R.J.C.
  1003.  
  1004. produces
  1005.  
  1006.      Give it to M.I.B. and to M.E.W.  Also, give it to R.J.C.
  1007.      Give it to M.I.B. and to M.E.W.  Also, give it to R.J.C.
  1008.  
  1009.   In the Info file output, `@.' is equivalent to a simple `.'; likewise
  1010. for `@!' and `@?'.
  1011.  
  1012.   The meanings of `@:' and `@.' in Texinfo are designed to work well
  1013. with the Emacs sentence motion commands (*note Sentences:
  1014. (emacs)Sentences.).
  1015.  
  1016.   Do not put braces after any of these commands.
  1017.  
  1018. 
  1019. File: texinfo,  Node: Multiple Spaces,  Next: dmn,  Prev: Ending a Sentence,  Up: Inserting Space
  1020.  
  1021. Multiple Spaces
  1022. ---------------
  1023.  
  1024.   Ordinarily, TeX collapses multiple whitespace characters (space, tab,
  1025. and newline) into a single space.  Info output, on the other hand,
  1026. preserves whitespace as you type it, except for changing a newline into
  1027. a space; this is why it is important to put two spaces at the end of
  1028. sentences in Texinfo documents.
  1029.  
  1030.   Occasionally, you may want to actually insert several consecutive
  1031. spaces, either for purposes of example (what your program does with
  1032. multiple spaces as input), or merely for purposes of appearance in
  1033. headings or lists.  Texinfo supports three commands: `@SPACE', `@TAB',
  1034. and `@NL', all of which insert a single space into the output.  (Here,
  1035. `@SPACE' represents an `@' character followed by a space, i.e., `@ ',
  1036. and `TAB' and `NL' represent the tab character and end-of-line, i.e.,
  1037. when `@' is the last character on a line.)
  1038.  
  1039.   For example,
  1040.      Spacey@ @ @ @
  1041.      example.
  1042.  
  1043. produces
  1044.  
  1045.      Spacey    example.
  1046.  
  1047.   Other possible uses of `@SPACE' have been subsumed by `@multitable'
  1048. (*note Multi-column Tables::).
  1049.  
  1050.   Do not follow any of these commands with braces.
  1051.  
  1052. 
  1053. File: texinfo,  Node: dmn,  Prev: Multiple Spaces,  Up: Inserting Space
  1054.  
  1055. `@dmn'{DIMENSION}: Format a Dimension
  1056. -------------------------------------
  1057.  
  1058.   At times, you may want to write `12pt' or `8.5in' with little or no
  1059. space between the number and the abbreviation for the dimension.  You
  1060. can use the `@dmn' command to do this.  On seeing the command, TeX
  1061. inserts just enough space for proper typesetting; the Info formatting
  1062. commands insert no space at all, since the Info file does not require
  1063. it.
  1064.  
  1065.   To use the `@dmn' command, write the number and then follow it
  1066. immediately, with no intervening space, by `@dmn', and then by the
  1067. dimension within braces.  For example,
  1068.  
  1069.      A4 paper is 8.27@dmn{in} wide.
  1070.  
  1071. produces
  1072.  
  1073.      A4 paper is 8.27in wide.
  1074.  
  1075.   Not everyone uses this style.  Some people prefer `8.27 in.@:' or
  1076. `8.27 inches' to `8.27@dmn{in}' in the Texinfo file.  In these cases,
  1077. however, the formatters may insert a line break between the number and
  1078. the dimension, so use `@w' (*note w::).  Also, if you write a period
  1079. after an abbreviation within a sentence, you should write `@:' after
  1080. the period to prevent TeX from inserting extra whitespace, as shown
  1081. here.  *Note Not Ending a Sentence::.
  1082.  
  1083. 
  1084. File: texinfo,  Node: Inserting Accents,  Next: Dots Bullets,  Prev: Inserting Space,  Up: Insertions
  1085.  
  1086. Inserting Accents
  1087. =================
  1088.  
  1089.   Here is a table with the commands Texinfo provides for inserting
  1090. floating accents.  The commands with non-alphabetic names do not take
  1091. braces around their argument (which is taken to be the next character).
  1092. (Exception: `@,' _does_ take braces around its argument.)  This is so
  1093. as to make the source as convenient to type and read as possible, since
  1094. accented characters are very common in some languages.
  1095.  
  1096. Command           Output   What
  1097. @"o               o"       umlaut accent
  1098. @'o               o'       acute accent
  1099. @,{c}             c,       cedilla accent
  1100. @=o               o=       macron/overbar accent
  1101. @^o               o^       circumflex accent
  1102. @`o               o`       grave accent
  1103. @~o               o~       tilde accent
  1104. @dotaccent{o}     o.       overdot accent
  1105. @H{o}             o''      long Hungarian umlaut
  1106. @ringaccent{o}    o*       ring accent
  1107. @tieaccent{oo}    oo[      tie-after accent
  1108. @u{o}             o(       breve accent
  1109. @ubaraccent{o}    o_       underbar accent
  1110. @udotaccent{o}    .o       underdot accent
  1111. @v{o}             o<       hacek or check accent
  1112.  
  1113.   This table lists the Texinfo commands for inserting other characters
  1114. commonly used in languages other than English.
  1115.  
  1116. @exclamdown{}       !       upside-down !
  1117. @questiondown{}     ?       upside-down ?
  1118. @aa{},@AA{}         aa,AA   a,A with circle
  1119. @ae{},@AE{}         ae,AE   ae,AE ligatures
  1120. @dotless{i}         i       dotless i
  1121. @dotless{j}         j       dotless j
  1122. @l{},@L{}           /l,/L   suppressed-L,l
  1123. @o{},@O{}           /o,/O   O,o with slash
  1124. @oe{},@OE{}         oe,OE   oe,OE ligatures
  1125. @ss{}               ss      es-zet or sharp S
  1126.  
  1127. 
  1128. File: texinfo,  Node: Dots Bullets,  Next: TeX and copyright,  Prev: Inserting Accents,  Up: Insertions
  1129.  
  1130. Inserting Ellipsis and Bullets
  1131. ==============================
  1132.  
  1133.   An "ellipsis" (a line of dots) is not typeset as a string of periods,
  1134. so a special command is used for ellipsis in Texinfo.  The `@bullet'
  1135. command is special, too.  Each of these commands is followed by a pair
  1136. of braces, `{}', without any whitespace between the name of the command
  1137. and the braces.  (You need to use braces with these commands because
  1138. you can use them next to other text; without the braces, the formatters
  1139. would be confused.  *Note @-Command Syntax: Command Syntax, for further
  1140. information.)
  1141.  
  1142. * Menu:
  1143.  
  1144. * dots::                        How to insert dots ...
  1145. * bullet::                      How to insert a bullet.
  1146.  
  1147. 
  1148. File: texinfo,  Node: dots,  Next: bullet,  Up: Dots Bullets
  1149.  
  1150. `@dots'{} (...) and `@enddots'{} (....)
  1151. ---------------------------------------
  1152.  
  1153.   Use the `@dots{}' command to generate an ellipsis, which is three
  1154. dots in a row, appropriately spaced, like this: `...'.  Do not simply
  1155. write three periods in the input file; that would work for the Info
  1156. file output, but would produce the wrong amount of space between the
  1157. periods in the printed manual.
  1158.  
  1159.   Similarly, the `@enddots{}' command generates an end-of-sentence
  1160. ellipsis (four dots) ....
  1161.  
  1162. 
  1163. File: texinfo,  Node: bullet,  Prev: dots,  Up: Dots Bullets
  1164.  
  1165. `@bullet'{} (*)
  1166. ---------------
  1167.  
  1168.   Use the `@bullet{}' command to generate a large round dot, or the
  1169. closest possible thing to one.  In Info, an asterisk is used.
  1170.  
  1171.   Here is a bullet: *
  1172.  
  1173.   When you use `@bullet' in `@itemize', you do not need to type the
  1174. braces, because `@itemize' supplies them.  (*Note `@itemize': itemize.)
  1175.  
  1176. 
  1177. File: texinfo,  Node: TeX and copyright,  Next: pounds,  Prev: Dots Bullets,  Up: Insertions
  1178.  
  1179. Inserting TeX and the Copyright Symbol
  1180. ======================================
  1181.  
  1182.   The logo `TeX' is typeset in a special fashion and it needs an
  1183. @-command.  The copyright symbol, `(C)', is also special.  Each of
  1184. these commands is followed by a pair of braces, `{}', without any
  1185. whitespace between the name of the command and the braces.
  1186.  
  1187. * Menu:
  1188.  
  1189. * tex::                         How to insert the TeX logo.
  1190. * copyright symbol::            How to use `@copyright'{}.
  1191.  
  1192. 
  1193. File: texinfo,  Node: tex,  Next: copyright symbol,  Up: TeX and copyright
  1194.  
  1195. `@TeX'{} (TeX)
  1196. --------------
  1197.  
  1198.   Use the `@TeX{}' command to generate `TeX'.  In a printed manual,
  1199. this is a special logo that is different from three ordinary letters.
  1200. In Info, it just looks like `TeX'.  The `@TeX{}' command is unique
  1201. among Texinfo commands in that the `T' and the `X' are in upper case.
  1202.  
  1203. 
  1204. File: texinfo,  Node: copyright symbol,  Prev: tex,  Up: TeX and copyright
  1205.  
  1206. `@copyright'{} ((C))
  1207. --------------------
  1208.  
  1209.   Use the `@copyright{}' command to generate `(C)'.  In a printed
  1210. manual, this is a `c' inside a circle, and in Info, this is `(C)'.
  1211.  
  1212. 
  1213. File: texinfo,  Node: pounds,  Next: minus,  Prev: TeX and copyright,  Up: Insertions
  1214.  
  1215. `@pounds'{} (#): Pounds Sterling
  1216. ================================
  1217.  
  1218.   Use the `@pounds{}' command to generate `#'.  In a printed manual,
  1219. this is the symbol for the currency pounds sterling.  In Info, it is a
  1220. `#'.  Other currency symbols are unfortunately not available.
  1221.  
  1222. 
  1223. File: texinfo,  Node: minus,  Next: math,  Prev: pounds,  Up: Insertions
  1224.  
  1225. `@minus'{} (-): Inserting a Minus Sign
  1226. ======================================
  1227.  
  1228.   Use the `@minus{}' command to generate a minus sign.  In a
  1229. fixed-width font, this is a single hyphen, but in a proportional font,
  1230. the symbol is the customary length for a minus sign--a little longer
  1231. than a hyphen, shorter than an em-dash:
  1232.  
  1233.      `-' is a minus sign generated with `@minus{}',
  1234.      
  1235.      `-' is a hyphen generated with the character `-',
  1236.      
  1237.      `---' is an em-dash for text.
  1238.  
  1239. In the fixed-width font used by Info, `@minus{}' is the same as a
  1240. hyphen.
  1241.  
  1242.   You should not use `@minus{}' inside `@code' or `@example' because
  1243. the width distinction is not made in the fixed-width font they use.
  1244.  
  1245.   When you use `@minus' to specify the mark beginning each entry in an
  1246. itemized list, you do not need to type the braces (*note `@itemize':
  1247. itemize..)
  1248.  
  1249. 
  1250. File: texinfo,  Node: math,  Next: Glyphs,  Prev: minus,  Up: Insertions
  1251.  
  1252. `@math': Inserting Mathematical Expressions
  1253. ===========================================
  1254.  
  1255.   You can write a short mathematical expression with the `@math'
  1256. command.  Write the mathematical expression between braces, like this:
  1257.  
  1258.      @math{(a + b)(a + b) = a^2 + 2ab + b^2}
  1259.  
  1260. This produces the following in Info:
  1261.  
  1262.      (a + b)(a + b) = a^2 + 2ab + b^2
  1263.  
  1264.   Thus, the `@math' command has no effect on the Info output.
  1265.  
  1266.   For complex mathematical expressions, you can also use TeX directly
  1267. (*note Raw Formatter Commands::).  When you use TeX directly, remember
  1268. to write the mathematical expression between one or two `$'
  1269. (dollar-signs) as appropriate.
  1270.  
  1271. 
  1272. File: texinfo,  Node: Glyphs,  Next: Footnotes,  Prev: math,  Up: Insertions
  1273.  
  1274. Glyphs for Examples
  1275. ===================
  1276.  
  1277.   In Texinfo, code is often illustrated in examples that are delimited
  1278. by `@example' and `@end example', or by `@lisp' and `@end lisp'.  In
  1279. such examples, you can indicate the results of evaluation or an
  1280. expansion using `=>' or `==>'.  Likewise, there are commands to insert
  1281. glyphs to indicate printed output, error messages, equivalence of
  1282. expressions, and the location of point.
  1283.  
  1284.   The glyph-insertion commands do not need to be used within an
  1285. example, but most often they are.  Every  glyph-insertion command is
  1286. followed by a pair of left- and right-hand braces.
  1287.  
  1288. * Menu:
  1289.  
  1290. * Glyphs Summary::
  1291. * result::                      How to show the result of expression.
  1292. * expansion::                   How to indicate an expansion.
  1293. * Print Glyph::                 How to indicate printed output.
  1294. * Error Glyph::                 How to indicate an error message.
  1295. * Equivalence::                 How to indicate equivalence.
  1296. * Point Glyph::                 How to indicate the location of point.
  1297.  
  1298. 
  1299. File: texinfo,  Node: Glyphs Summary,  Next: result,  Prev: Glyphs,  Up: Glyphs
  1300.  
  1301. Glyphs Summary
  1302. --------------
  1303.  
  1304.   Here are the different glyph commands:
  1305.  
  1306. =>
  1307.      `@result{}' points to the result of an expression.
  1308.  
  1309. ==>
  1310.      `@expansion{}' shows the results of a macro expansion.
  1311.  
  1312. -|
  1313.      `@print{}' indicates printed output.
  1314.  
  1315. error-->
  1316.      `@error{}' indicates that the following text is an error message.
  1317.  
  1318. ==
  1319.      `@equiv{}' indicates the exact equivalence of two forms.
  1320.  
  1321. -!-
  1322.      `@point{}' shows the location of point.
  1323.  
  1324. * Menu:
  1325.  
  1326. * result::
  1327. * expansion::
  1328. * Print Glyph::
  1329. * Error Glyph::
  1330. * Equivalence::
  1331. * Point Glyph::
  1332.  
  1333. 
  1334. File: texinfo,  Node: result,  Next: expansion,  Prev: Glyphs Summary,  Up: Glyphs
  1335.  
  1336. `@result{}' (=>): Indicating Evaluation
  1337. ---------------------------------------
  1338.  
  1339.   Use the `@result{}' command to indicate the result of evaluating an
  1340. expression.
  1341.  
  1342.   The `@result{}' command is displayed as `=>' in Info and as a double
  1343. stemmed arrow in the printed output.
  1344.  
  1345.   Thus, the following,
  1346.  
  1347.      (cdr '(1 2 3))
  1348.           => (2 3)
  1349.  
  1350. may be read as "`(cdr '(1 2 3))' evaluates to `(2 3)'".
  1351.  
  1352. 
  1353. File: texinfo,  Node: expansion,  Next: Print Glyph,  Prev: result,  Up: Glyphs
  1354.  
  1355. `@expansion{}' (==>): Indicating an Expansion
  1356. ---------------------------------------------
  1357.  
  1358.   When an expression is a macro call, it expands into a new expression.
  1359. You can indicate the result of the expansion with the `@expansion{}'
  1360. command.
  1361.  
  1362.   The `@expansion{}' command is displayed as `==>' in Info and as a
  1363. long arrow with a flat base in the printed output.
  1364.  
  1365.   For example, the following
  1366.  
  1367.      @lisp
  1368.      (third '(a b c))
  1369.           @expansion{} (car (cdr (cdr '(a b c))))
  1370.           @result{} c
  1371.      @end lisp
  1372.  
  1373. produces
  1374.  
  1375.      (third '(a b c))
  1376.           ==> (car (cdr (cdr '(a b c))))
  1377.           => c
  1378.  
  1379. which may be read as:
  1380.  
  1381.      `(third '(a b c))' expands to `(car (cdr (cdr '(a b c))))'; the
  1382.      result of evaluating the expression is `c'.
  1383.  
  1384. Often, as in this case, an example looks better if the `@expansion{}'
  1385. and `@result{}' commands are indented five spaces.
  1386.  
  1387. 
  1388. File: texinfo,  Node: Print Glyph,  Next: Error Glyph,  Prev: expansion,  Up: Glyphs
  1389.  
  1390. `@print{}' (-|): Indicating Printed Output
  1391. ------------------------------------------
  1392.  
  1393.   Sometimes an expression will print output during its execution.  You
  1394. can indicate the printed output with the `@print{}' command.
  1395.  
  1396.   The `@print{}' command is displayed as `-|' in Info and similarly, as
  1397. a horizontal dash butting against a vertical bar, in the printed output.
  1398.  
  1399.   In the following example, the printed text is indicated with `-|',
  1400. and the value of the expression follows on the last line.
  1401.  
  1402.      (progn (print 'foo) (print 'bar))
  1403.           -| foo
  1404.           -| bar
  1405.           => bar
  1406.  
  1407. In a Texinfo source file, this example is written as follows:
  1408.  
  1409.      @lisp
  1410.      (progn (print 'foo) (print 'bar))
  1411.           @print{} foo
  1412.           @print{} bar
  1413.           @result{} bar
  1414.      @end lisp
  1415.  
  1416. 
  1417. File: texinfo,  Node: Error Glyph,  Next: Equivalence,  Prev: Print Glyph,  Up: Glyphs
  1418.  
  1419. `@error{}' (error-->): Indicating an Error Message
  1420. --------------------------------------------------
  1421.  
  1422.   A piece of code may cause an error when you evaluate it.  You can
  1423. designate the error message with the `@error{}' command.
  1424.  
  1425.   The `@error{}' command is displayed as `error-->' in Info and as the
  1426. word `error' in a box in the printed output.
  1427.  
  1428.   Thus,
  1429.  
  1430.      @lisp
  1431.      (+ 23 'x)
  1432.      @error{} Wrong type argument: integer-or-marker-p, x
  1433.      @end lisp
  1434.  
  1435. produces
  1436.  
  1437.      (+ 23 'x)
  1438.      error--> Wrong type argument: integer-or-marker-p, x
  1439.  
  1440. This indicates that the following error message is printed when you
  1441. evaluate the expression:
  1442.  
  1443.      Wrong type argument: integer-or-marker-p, x
  1444.  
  1445.   `error-->' itself is not part of the error message.
  1446.  
  1447. 
  1448. File: texinfo,  Node: Equivalence,  Next: Point Glyph,  Prev: Error Glyph,  Up: Glyphs
  1449.  
  1450. `@equiv{}' (==): Indicating Equivalence
  1451. ---------------------------------------
  1452.  
  1453.   Sometimes two expressions produce identical results.  You can
  1454. indicate the exact equivalence of two forms with the `@equiv{}' command.
  1455.  
  1456.   The `@equiv{}' command is displayed as `==' in Info and as a three
  1457. parallel horizontal lines in the printed output.
  1458.  
  1459.   Thus,
  1460.  
  1461.      @lisp
  1462.      (make-sparse-keymap) @equiv{} (list 'keymap)
  1463.      @end lisp
  1464.  
  1465. produces
  1466.  
  1467.      (make-sparse-keymap) == (list 'keymap)
  1468.  
  1469. This indicates that evaluating `(make-sparse-keymap)' produces
  1470. identical results to evaluating `(list 'keymap)'.
  1471.  
  1472.